import Vue from 'vue'
import Vuex from 'vuex'
// 应用vuex插件
Vue.use(Vuex)
 
// 创建并暴露store
const store= new Vuex.Store({
    // 数据,相当于data
    state: { 
        sum: 0
    },
    //准备getters——用于将state中的数据进行加工
    //类似于computed(计算属性，对现有的状态进行计算得到新的数据),用于将state中的数据进行加工
    getters: {
        bigSum(state){
            return state.sum * 10
        }
    },
    //准备mutations——用于操作数据（state）
    mutations: { 
        add(state, value) {
            state.sum += value
        },
        reduce(state,value){
            state.sum -= value
        }
    },
    //准备actions——用于响应组件中的动作
    actions: {
        changeSum (ctx, sum) {
            // 调用mutations里对应的方法，sum为所传值
            ctx.commit('changeSum', sum)
        }
    },
    //使用它来操作数据(类似于methods) 
    modules: {
        
    }
})
export default  store;